import { Module, DynamicModule, Global } from '@nestjs/common'
import { MulterModuleOptions } from './multer-options.interface';

// 提供者
import { MulterConfigService } from './multer-config.service' // 上传文件配置的提供者

// 提供者的 token令牌
import { MULTER_MODULE_OPTIONS } from './contants'

/**
 * 文件上传动态模块
 */
@Module({})
export class MulterModule {
  static register(options: MulterModuleOptions): DynamicModule {
    return {
      module: MulterModule,
      providers: [
        {
          provide: MULTER_MODULE_OPTIONS,
          useValue: options,
        },
        MulterConfigService,
      ],
      exports: [
        MulterConfigService,
      ],
    }
  }
}
